# -*- coding: utf-8 -*-
"""
事件接口。

:author: 宋文武
:date: 2016-11-10
"""
from zope.interface import Interface, Attribute


class IEvent(Interface):
    """事件。"""
    context = Attribute('事件发生时的上下文环境')


class IIndicatorsChanged(IEvent):
    """国家指标变更事件。

    :type role_id: str
    :type indicators: IIndicators
    """
    role_id = Attribute('角色id')
    indicators = Attribute('国家指标')


class IRoleDungeonPointPass(IEvent):
    """
    角色副本据点胜利事件
    """
    role_id = Attribute('角色id')
    progress = Attribute('副本进度')
    # battle_score = Attribute('战功')


class IRoleDrillPointChanged(IEvent):
    """
    角色校场分数改变事件
    """
    role_id = Attribute('角色id')
    drill_point = Attribute('角色校场分数')


class IRoleBossPointChanged(IEvent):
    """
    角色BOSS积分改变事件
    """
    role_id = Attribute('角色id')
    boss_point = Attribute('BOSS积分')


class IRoleBossDamageChanged(IEvent):
    """
    角色BOSS伤害改变事件
    """
    role_id = Attribute('角色id')
    boss_damage = Attribute('BOSS伤害')


class IActivityProgressChanged(IEvent):
    """活动进度变更事件。

    :type role_id: str
    """
    role_id = Attribute('角色id')
    a_type = Attribute('活动类型')
    add_value = Attribute('涨幅分数')
    battle_score = Attribute('战功')
    level_id = Attribute('海战关卡id')
    alliance_id = Attribute('联盟id')


class IConcubineIntimateChanged(IEvent):
    """角色妃子亲密度改变事件。

    :type role_id: str
    :type intimate: int
    """
    role_id = Attribute('角色id')
    intimate_lv = Attribute('亲密度等级')


class IRoleRecharge(IEvent):
    """
    角色充值事件
    """
    role_id = Attribute('角色id')
    money = Attribute('金额')
    product_id = Attribute('产品id')


class IRoleBehaviorChanged(IEvent):
    """
    角色行为事件变更
    """
    role_id = Attribute('角色id')
    behavior_type = Attribute('行为类型')
    add_value = Attribute('增加进度值')


class ISiegelordBehaviorChanged(IEvent):
    """
    攻城略地角色行为事件变更
    """
    siegelord_role = Attribute('攻城略地角色实例')
    behavior_type = Attribute('行为类型')
    add_value = Attribute('增加进度值')


class ITowerBehaviorChanged(IEvent):
    """
    爬塔角色行为事件变更
    """
    tower_role = Attribute('爬塔角色')
    behavior_type = Attribute('任务类型')
    template_id = Attribute("活动模板id")
    add_value = Attribute('增加进度值')

